package JZ_Offer.algorithm.other.数组;

import java.util.ArrayList;

/**
 * 输入一个递增排序的数组和一个数字S，在数组中查找两个数，使得他们的和正好是S，如果有多对数字的和等于S，输出两个数的乘积最小的。
 */
public class JZ57_和为S的两个数字 {
    private static ArrayList<Integer> FindNumbersWithSum(int[] array, int sum) {
        ArrayList<Integer> result = new ArrayList<>();

        if (array == null || array.length <= 1) {
            return result;
        }

        int l = 0, r = array.length - 1;
        while (l < r) {
            int s = array[l] + array[r];
            if (s == sum) {
                result.add(array[l]);
                result.add(array[r]);
                return result;
            } else if (s < sum) {
                l++;
            } else {
                r--;
            }
        }

        return result;
    }

    public static void main(String[] args) {
        int[] array = {1, 2, 3, 4, 5, 6, 7, 8, 9};
        ArrayList<Integer> arrayList = FindNumbersWithSum(array, 10);
    }
}
